package com.project.dao;

import com.project.bean.User;

import java.time.LocalDate;
import java.util.List;

public interface IUserDao {
    /**
     * 用户添加
     * @param u 用户对象
     */
    void addUser(User u);

    /**
     * 按id删除用户
     * @param id 用户id
     */
    void del(int id);

    /**
     * 按id修改密码和等级
     * @param id 用户id
     * @param pwd 用户密码
     * @param rank 用户等级
     */
    void update(int id,String pwd,String rank);

    /**
     * 查找所有用户
     * @return 用户集合
     */
    List<User> findAll();

    /**
     * 按id查找用户
     * @return 用户对象
     */
    User findById(int id);

    /**
     * 按用户名查找用户
     * @return 用户集合
     */
    List<User> findByName(String name);

    /**
     * 按生日起始日期和结束日期，查询用户
     * @param startDate 起始日期
     * @param endDate  结束日期
     * @return 用户集合
     */
    List<User> findByBirthday(LocalDate startDate, LocalDate endDate);

    /**
     * 按等级查询用户
     * @return 用户集合
     */
    List<User> findByRank(String rank);

    /**
     * 登录查询
     * @param userName 登录用户名
     * @param pwd 密码
     * @return 登录用户，若登录失败，返回空值
     */
    User login(String userName,String pwd);
}
